package com.example.lib.io2;

import java.io.File;
import java.io.IOException;

/**
 * File类常见方法：
 * 1.创建
 *      boolean createNewFile();在指定位置创建文件，如果该文件已经存在，则不创建，返回false。
 *          和输入流不一样。输入流对象一建立就创建文件，而且文件已经存在，会覆盖。
 *      boolean mkdir();创建文件夹
 *      boolean mkdirs();创建多级文件夹。
 * 2.删除
 *      boolean delete();删除成功返回true，删除失败返回false。
 *      void deleteOnExit();在程序退出时删除指定文件。
 * 3.判断
 *      boolean exists();文件是否存在
 *      boolean isFile();
 *      boolean isDirectory();
 *      boolean isHidden();
 *      boolean isAbsolute();
 * 4.获取信息
 *      getName();
 *      getPath();
 *      getParent();
 *
 *      getAbsolutePath();
 *      getAbsoluteFile();
 *      lastModified();
 *      length();
 */
public class b_io_file_20_02_04 {
    public static void main(String[] args) throws IOException {
//        method_1();
//        method_2();
//        method_3();
//        method_4();
    }
    public static void method_5(){
        File f1=new File("c:\\Text.java");
        File f2=new File("D:\\Text2.java");
        sop("rename:"+f1.renameTo(f2));
    }

    public static void method_4(){
        File f=new File("file.txt");
        sop("path:"+f.getPath());
        sop("absolutePath:"+f.getAbsolutePath());
        sop("absoluteFile:"+f.getAbsoluteFile());
        sop("parent:"+f.getParent());//该方法返回的是绝对路径中的父目录。如果获取的是相对路径，返回null。
                //如果相对路径中有上一层目录，那么该上一层目录就是返回结果。
    }

    public static void method_3() throws IOException{
        File f=new File("file.txt");
        File f2=new File("d:\\java\\day20\\file2.txt");
//        f.mkdir();
        f.createNewFile();

        //记住在判断文件对象是否是文件或者目录时，必须要先判断该文件对象封装的内容是否存在。
        //通过exists判断。
        sop("dir:"+f.isDirectory());
        sop("file:"+f.isFile());
        sop("是否是绝对路径:"+f.isAbsolute());
    }

    public static void method_2(){
        File f1=new File("gradlew1.bat");
        File f2=new File("file.txt");
        sop("f1 execute:"+f1.canExecute());
        sop("f2 execute:"+f2.canExecute());

        File f3=new File("file.txt");
        File f4=new File("file123.txt");
        sop("f3 exists:"+f3.exists());
        sop("f4 exists:"+f4.exists());

        //创建文件夹
        File dir=new File("adb");
        sop("mkdir:"+dir.mkdir());
        //创建多级文件夹
        File dir2=new File("adb\\bb\\cc\\kk");
        sop("mkdirs:"+dir2.mkdirs());
    }

    public static void method_1() throws IOException {
        File f=new File("file.txt");

        sop("create:"+f.createNewFile());
//        sop("delete:"+f.delete());
    }

    public static void sop(Object obj){
        System.out.println(obj);
    }
}
